package ln.javatest.day18.demo01;

public class ReflectDemo1 {
    /*
    获取Class对象的方式：
        1) Class.forName("全类名")：将字节码文件加载进内存，返回Class对象。
        2）类名.class：通过类名的属性class获取
        3）对象.getClass()方法在Object类中定义着。
    */
    public static void main(String[] args) throws Exception {
        //1) Class.forName("全类名")：将字节码文件加载进内存，返回Class对象。
        Class cls = Class.forName("ln.javatest.day18.demo01.Person");
        System.out.println(cls);
        // 2）类名.class：通过类名的属性class获取
        Class cls1 = Person.class;
        System.out.println(cls1);
        //3）对象.getClass()方法在Object类中定义着。
        Person p = new Person();
        Class cls2 = p.getClass();
        System.out.println(cls2);
        System.out.println(cls1 == cls2 && cls1 == cls); //true
        // 结论：同一个字节码文件(.class)在一次程序运行过程中，只会被加载一次。
    }
}
